home *** CD-ROM | disk | FTP | other *** search
- Network Working Group Jon Postel (SRI-ARC)
- Request For Comments: 718 Jun 1976
- NIC #35874
-
-
-
- The following memo was a page of a document describing changes in
- version 1.34 of the Tenex system. I believe that the author is Ray
- Tomlinson or someone else in the BBN-RCC Tenex group. In any case Ray
- has agreed that these comments should be circulated to the to the
- network community, rather than to only the Tenex community.
-
-
- Comments on RCTE from the TENEX Implementation Experience
-
- The code to implement the RCTE option of the new TELNET protocol for
- TENEX has been completed. The RCTE option permits a reduction in network
- traffic by deferring the transmission of characters which will not cause
- the receiving user program to be activated until a character which will
- cause the user program to be activated. A further reduction is achieved
- by minimizing the flow of echo characters back to the user TELNET
- program. This is done by having the server instruct the user TELNET to
- echo the group of characters up through the next wakeup character. By
- sending this command as the user program is about to read the first
- character of that group, the echo is guaranteed to follow any response
- to the preceding group of characters.
-
- Significant problems with the RCTE protocol were encountered. The
- handling of spontaneous output was specified in a way that made the
- implementation extremely difficult to do correctly (if, indeed, a
- correct implementation is possible). The solution here was to completely
- isolate the control of input transmission and echoing from the
- characters flowing in the output stream. Synchronization of input and
- output then occurs directly by virtue of the embedding of control
- information in the output stream. This approach permits a simplified
- coding of both the user TELNET and server TELNET.
-
- A second problem was the handling of interrupt characters. The RCTE
- protocol fails to provide an explicit mechanism for interrupt characters
- thus necessitating the handling of interrupt characters as program
- wakeup characters. Since the interrupt characters are not actually
- handled as program wakeup characters and, in fact, bypass the terminal
- input buffer, a special provision had to be made to get the command sent
- back to the user TELNET to indicate that the character stream should be
- echoed beyond the point where the interrupt character was typed. The
- transmission must be synchronized with the processing of the terminal
- input buffer so that it will be sent at the proper time. This was
- achieved by putting a marker in the input buffer at the point where the
- interrupt character was. This marker is never given to the user's
- program and must not be counted as an input character. A new counter was
- installed indicating the number of such markers in the input buffer and
- the SIBE JSYS modified to indicate "empty" only if the difference of the
- total characters in the buffer and the number of markers in the buffer
- is greater than 0.
-
- -1-
-
-
-
- A third problem is handling the case where the input buffer is cleared.
- Since the buffer may contain various wakeup characters and special
- markers, when the buffer is cleared, the user TELNET and SERVER may get
- out of sync. It is infeasible to scan the buffer and send a RCTE
- command for each such wakeup character or special marker. instead, a
- command is sent to the user TELNET meaning "clear your input buffer and
- reset your counters". This command is implemented by sending "WILL
- RCTE". This is the reverse case from a normal RCTE (i.e. DO RCTE) and
- thus cannot be confused with the normal use of the RCTE option. This
- saves adding a new option.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -2-
-